#include <vector>
//#include <utility> // 添加缺失的头文件以支持 std::pair
using namespace std;
enum State
{
	EXIST,  // 元素存在
	EMPTY,  // 元素为空
	DELETE  // 元素已删除
};

template<class K, class V>
struct HashData
{
	std::pair<K, V> _kv; // 键值对
	State _state = EMPTY; // 状态，默认为 EMPTY
	// DELETE 状态用于标记删除的元素，避免影响其他元素的查找
};


template<class K, class V>
class HashTable
{
public:
	bool Insert(const pair<K, V>& kv)
	{
		//扩容
		if(_n/_table.size() >=0.7)
        {
            
        }
		size_t hash0 = kv.first % _table.size();//开始位置
		size_t i = 1;
		size_t hashi = hash0;
		while (_table[hashi]._state == EXIST)
		{
			//冲突检测
			hashi = (hash0 + i) % _table.size();
			++i;
		}
		_table[hashi]._kv = kv;
		_table[hashi]._state = EXIST;
        ++_n;
	}
private:
	vector<HashData<K, V>> _table; // 哈希表存储桶
	size_t _n = 0; // 表中存储数据的个数
	// ...未来可以添加插入、查找、删除等功能...
};